﻿<phone:PhoneApplicationPage 
    x:Class="ConfApp.Views.PodcastListView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:Behaviours="clr-namespace:ConfApp.Infrastructure.Behaviours"
    xmlns:prismInteractionRequest="clr-namespace:Microsoft.Practices.Prism.Interactivity.InteractionRequest;assembly=Microsoft.Practices.Prism.Interactivity"
    xmlns:prismInteractivity="clr-namespace:Microsoft.Practices.Prism.Interactivity;assembly=Microsoft.Practices.Prism.Interactivity"
    xmlns:pag="clr-namespace:ConfApp.Infrastracture.Behaviours" FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    mc:Ignorable="d" d:DesignHeight="696" d:DesignWidth="480"
    DataContext="{Binding Source={StaticResource ViewModelLocator}, Path=PodcastListViewModel}"
    shell:SystemTray.IsVisible="True">

    <toolkit:TransitionService.NavigationInTransition>
        <toolkit:NavigationInTransition>
            <toolkit:NavigationInTransition.Backward>
                <toolkit:TurnstileTransition Mode="BackwardIn"/>
            </toolkit:NavigationInTransition.Backward>
            <toolkit:NavigationInTransition.Forward>
                <toolkit:TurnstileTransition Mode="ForwardIn"/>
            </toolkit:NavigationInTransition.Forward>
        </toolkit:NavigationInTransition>
    </toolkit:TransitionService.NavigationInTransition>
    <toolkit:TransitionService.NavigationOutTransition>
        <toolkit:NavigationOutTransition>
            <toolkit:NavigationOutTransition.Backward>
                <toolkit:TurnstileTransition Mode="BackwardOut"/>
            </toolkit:NavigationOutTransition.Backward>
            <toolkit:NavigationOutTransition.Forward>
                <toolkit:TurnstileTransition Mode="ForwardOut"/>
            </toolkit:NavigationOutTransition.Forward>
        </toolkit:NavigationOutTransition>
    </toolkit:TransitionService.NavigationOutTransition>
    
    <phone:PhoneApplicationPage.Resources>
        <!-- The template for track items -->
        <DataTemplate x:Key="podcastItemTemplate">
            <Grid Margin="{StaticResource PhoneTouchTargetOverhang}">
                <StackPanel Margin="12,0" VerticalAlignment="Top">
                    <TextBlock Text="{Binding Title}" Style="{StaticResource PhoneTextLargeStyle}" 
                               FontSize="36" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiBold}" Margin="12,-12,12,6"/>
                    <TextBlock Text="{Binding Info}" Style="{StaticResource PhoneTextNormalStyle}" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/>
                </StackPanel>
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="Tap">
                        <i:InvokeCommandAction Command="{Binding Path=DataContext.PodcastSelectedCommand, ElementName=tracks}" CommandParameter="{Binding}"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </Grid>            
        </DataTemplate>
    </phone:PhoneApplicationPage.Resources>

    
    
    <!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <!--Synchronization Status Toast -->
        <Popup x:Name="SynchronizationToast">
            <Grid Background="{StaticResource PhoneAccentBrush}" VerticalAlignment="Bottom" Width="480">
                <TextBlock Text="{Binding Title}" HorizontalAlignment="Stretch" Foreground="Black" TextWrapping="Wrap" Margin="14,5,14,5">
                        <i:Interaction.Behaviors>
                            <pag:PopupHideOnLeftMouseUp/>
                        </i:Interaction.Behaviors>
                </TextBlock>
            </Grid>
        </Popup>
        


        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="SINERGIJA 11" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="podcasts" Margin="9,-7,0,0" FontSize="64" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,-24,12,0" Height="500" >
            <toolkit:LongListSelector x:Name="tracks" IsFlatList="True" Background="Transparent"
                    ItemsSource="{Binding PodcastInfos}"                     
                    ItemTemplate="{StaticResource podcastItemTemplate}">
            </toolkit:LongListSelector>
        </Grid>
    </Grid>

    <!--Application Bar-->
    <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsMenuEnabled="True" IsVisible="True" Opacity="1.0">
            <shell:ApplicationBarIconButton Text="Osveži" IconUri="/Resources/Icons/appbar.refresh.rest.png"/>
        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>

    <i:Interaction.Triggers>
        <i:EventTrigger SourceObject="{Binding SubmitErrorInteractionRequest}" EventName="Raised">
            <prismInteractionRequest:MessageBoxAction />
        </i:EventTrigger>
        <i:EventTrigger SourceObject="{Binding SubmitNotificationInteractionRequest}" EventName="Raised">
            <prismInteractionRequest:ToastPopupAction PopupElementName="SynchronizationToast" />
        </i:EventTrigger>        
    </i:Interaction.Triggers>

    <i:Interaction.Behaviors>
        <prismInteractivity:ApplicationBarButtonCommand ButtonText="Osveži" CommandBinding="{Binding UpdateListCommand}"/>
    </i:Interaction.Behaviors>

</phone:PhoneApplicationPage>
